
/*
Nombre:		dbo.sf_referenciaApartados
Descripcion:	Funcion que regresa los pagos a apartados de una impresion de nota de venta
Fecha:		2006.01.04
*/

create   FUNCTION dbo.sf_referenciaApartados ( @p_folioNotaVenta varchar(10) )
RETURNS varchar(255) AS

BEGIN	
	declare @v_retVal varchar(255)
	declare @v_referencia varchar(10)
	declare @v_importe decimal(18,0)
	set @v_retVal = ''
	declare cur_referencias CURSOR FOR 
	select	case
			when referencia = '' then ap.folio
			else referencia
		end as referencia,
		importe
	from	pvNotaVentaHdr nvh
			inner join pvApartadosPag ap
			on nvh.apartado = ap.folio
	where	nvh.folio = @p_folioNotaVenta

	open cur_referencias

	fetch next from cur_referencias into 
					@v_referencia,
					@v_importe

	while @@fetch_status = 0 begin
		if @v_retVal = '' begin
			set @v_retVal = ( @v_referencia + '= $' + convert(varchar, @v_importe) )
		end else begin
			set @v_retVal = @v_retVal + ', ' + ( @v_referencia + '= $' + convert(varchar, @v_importe) )
		end
		fetch next from cur_referencias into 
						@v_referencia,
						@v_importe
	end

	close cur_referencias
	deallocate cur_referencias
	
	return @v_retVal
END
GO
